// 定义材质的漫反射颜色
uniform vec3 diffuse;
// 定义材质的不透明度
uniform float opacity;
// 定义纹理采样器，用于获取纹理颜色
uniform sampler2D map;
// 从顶点着色器传递过来的 UV 坐标
varying vec2 vUv;
varying vec3 testColor;

// 包含一些通用的 GLSL 代码
#include <common>
// 包含与 UV 坐标相关的代码
#include <uv_pars_fragment>
// 包含与纹理采样相关的代码
#include <map_pars_fragment>
// 包含与透明度贴图相关的代码
#include <alphamap_pars_fragment>
// 包含与透明度测试相关的代码
#include <alphatest_pars_fragment>
// 包含与雾效果相关的代码
#include <fog_pars_fragment>
// 包含与深度缓冲日志相关的代码
#include <logdepthbuf_pars_fragment>
// 包含与裁剪平面相关的代码
#include <clipping_planes_pars_fragment>

void main() {
  // 包含深度缓冲日志的代码
  #include <logdepthbuf_fragment>

  // 从纹理中采样颜色，使用传递的 UV 坐标
  vec4 diffuseColor = texture2D(map, vec2(vUv.x, vUv.y));
  diffuseColor.rgb *= testColor;
  // 设置片段的最终颜色，使用纹理颜色的 RGB 值和透明度（乘以 uniform 定义的不透明度）
  // gl_FragColor = vec4(diffuseColor.rgb, diffuseColor.a * opacity);
  gl_FragColor = vec4(diffuseColor.rgb, 1.);
}
